1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */ 
28 
29 module derelict.purple.value;
30 
31 import derelict.glib.gtypes;
32 import derelict.glib.glibconfig;
33 import core.stdc.config;
34 
35 extern (C):
36 
37 alias _Anonymous_0 PurpleType;
38 alias _Anonymous_1 PurpleSubType;
39 alias _Anonymous_2 PurpleValue;
40 
41 enum _Anonymous_0
42 {
43 	PURPLE_TYPE_UNKNOWN = 0,
44 	PURPLE_TYPE_SUBTYPE = 1,
45 	PURPLE_TYPE_CHAR = 2,
46 	PURPLE_TYPE_UCHAR = 3,
47 	PURPLE_TYPE_BOOLEAN = 4,
48 	PURPLE_TYPE_SHORT = 5,
49 	PURPLE_TYPE_USHORT = 6,
50 	PURPLE_TYPE_INT = 7,
51 	PURPLE_TYPE_UINT = 8,
52 	PURPLE_TYPE_LONG = 9,
53 	PURPLE_TYPE_ULONG = 10,
54 	PURPLE_TYPE_INT64 = 11,
55 	PURPLE_TYPE_UINT64 = 12,
56 	PURPLE_TYPE_STRING = 13,
57 	PURPLE_TYPE_OBJECT = 14,
58 	PURPLE_TYPE_POINTER = 15,
59 	PURPLE_TYPE_ENUM = 16,
60 	PURPLE_TYPE_BOXED = 17
61 }
62 
63 enum _Anonymous_1
64 {
65 	PURPLE_SUBTYPE_UNKNOWN = 0,
66 	PURPLE_SUBTYPE_ACCOUNT = 1,
67 	PURPLE_SUBTYPE_BLIST = 2,
68 	PURPLE_SUBTYPE_BLIST_BUDDY = 3,
69 	PURPLE_SUBTYPE_BLIST_GROUP = 4,
70 	PURPLE_SUBTYPE_BLIST_CHAT = 5,
71 	PURPLE_SUBTYPE_BUDDY_ICON = 6,
72 	PURPLE_SUBTYPE_CONNECTION = 7,
73 	PURPLE_SUBTYPE_CONVERSATION = 8,
74 	PURPLE_SUBTYPE_PLUGIN = 9,
75 	PURPLE_SUBTYPE_BLIST_NODE = 10,
76 	PURPLE_SUBTYPE_CIPHER = 11,
77 	PURPLE_SUBTYPE_STATUS = 12,
78 	PURPLE_SUBTYPE_LOG = 13,
79 	PURPLE_SUBTYPE_XFER = 14,
80 	PURPLE_SUBTYPE_SAVEDSTATUS = 15,
81 	PURPLE_SUBTYPE_XMLNODE = 16,
82 	PURPLE_SUBTYPE_USERINFO = 17,
83 	PURPLE_SUBTYPE_STORED_IMAGE = 18,
84 	PURPLE_SUBTYPE_CERTIFICATEPOOL = 19,
85 	PURPLE_SUBTYPE_CHATBUDDY = 20
86 }
87 
88 struct _Anonymous_2
89 {
90 	PurpleType type;
91 	ushort flags;
92 	union
93 	{
94 		char char_data;
95 		ubyte uchar_data;
96 		gboolean boolean_data;
97 		short short_data;
98 		ushort ushort_data;
99 		int int_data;
100 		uint uint_data;
101 		c_long long_data;
102 		c_ulong ulong_data;
103 		gint64 int64_data;
104 		guint64 uint64_data;
105 		char* string_data;
106 		void* object_data;
107 		void* pointer_data;
108 		int enum_data;
109 		void* boxed_data;
110 	}
111 	union
112 	{
113 		uint subtype;
114 		char* specific_type;
115 	}
116 }
117 
118 
119 version(Derelict_Link_Static)
120 {
121     extern( C ) nothrow 
122     {
123 	    PurpleValue* purple_value_new(PurpleType type, ...);
124         PurpleValue* purple_value_new_outgoing(PurpleType type, ...);
125         void purple_value_destroy(PurpleValue* value);
126         PurpleValue* purple_value_dup(const(PurpleValue)* value);
127         PurpleType purple_value_get_type(const(PurpleValue)* value);
128         uint purple_value_get_subtype(const(PurpleValue)* value);
129         const(char)* purple_value_get_specific_type(const(PurpleValue)* value);
130         gboolean purple_value_is_outgoing(const(PurpleValue)* value);
131         void purple_value_set_char(PurpleValue* value, char data);
132         void purple_value_set_uchar(PurpleValue* value, ubyte data);
133         void purple_value_set_boolean(PurpleValue* value, gboolean data);
134         void purple_value_set_short(PurpleValue* value, short data);
135         void purple_value_set_ushort(PurpleValue* value, ushort data);
136         void purple_value_set_int(PurpleValue* value, int data);
137         void purple_value_set_uint(PurpleValue* value, uint data);
138         void purple_value_set_long(PurpleValue* value, c_long data);
139         void purple_value_set_ulong(PurpleValue* value, c_ulong data);
140         void purple_value_set_int64(PurpleValue* value, gint64 data);
141         void purple_value_set_uint64(PurpleValue* value, guint64 data);
142         void purple_value_set_string(PurpleValue* value, const(char)* data);
143         void purple_value_set_object(PurpleValue* value, void* data);
144         void purple_value_set_pointer(PurpleValue* value, void* data);
145         void purple_value_set_enum(PurpleValue* value, int data);
146         void purple_value_set_boxed(PurpleValue* value, void* data);
147         char purple_value_get_char(const(PurpleValue)* value);
148         ubyte purple_value_get_uchar(const(PurpleValue)* value);
149         gboolean purple_value_get_boolean(const(PurpleValue)* value);
150         short purple_value_get_short(const(PurpleValue)* value);
151         ushort purple_value_get_ushort(const(PurpleValue)* value);
152         int purple_value_get_int(const(PurpleValue)* value);
153         uint purple_value_get_uint(const(PurpleValue)* value);
154         c_long purple_value_get_long(const(PurpleValue)* value);
155         c_ulong purple_value_get_ulong(const(PurpleValue)* value);
156         gint64 purple_value_get_int64(const(PurpleValue)* value);
157         guint64 purple_value_get_uint64(const(PurpleValue)* value);
158         const(char)* purple_value_get_string(const(PurpleValue)* value);
159         void* purple_value_get_object(const(PurpleValue)* value);
160         void* purple_value_get_pointer(const(PurpleValue)* value);
161         int purple_value_get_enum(const(PurpleValue)* value);
162         void* purple_value_get_boxed(const(PurpleValue)* value);
163     }
164 }
165 else
166 {
167     extern( C ) nothrow 
168     {
169 	    alias da_purple_value_new = PurpleValue* function(PurpleType type, ...);											
170         alias da_purple_value_new_outgoing = PurpleValue* function(PurpleType type, ...);									
171         alias da_purple_value_destroy = void function(PurpleValue* value);													
172         alias da_purple_value_dup = PurpleValue* function(const(PurpleValue)* value);										
173         alias da_purple_value_get_type = PurpleType function(const(PurpleValue)* value);									
174         alias da_purple_value_get_subtype = uint function(const(PurpleValue)* value);										
175         alias da_purple_value_get_specific_type = const(char)* function(const(PurpleValue)* value);							
176         alias da_purple_value_is_outgoing = gboolean function(const(PurpleValue)* value);									
177         alias da_purple_value_set_char = void function(PurpleValue* value, char data);										
178         alias da_purple_value_set_uchar = void function(PurpleValue* value, ubyte data);									
179         alias da_purple_value_set_boolean = void function(PurpleValue* value, gboolean data);								
180         alias da_purple_value_set_short = void function(PurpleValue* value, short data);									
181         alias da_purple_value_set_ushort = void function(PurpleValue* value, ushort data);									
182         alias da_purple_value_set_int = void function(PurpleValue* value, int data);										
183         alias da_purple_value_set_uint = void function(PurpleValue* value, uint data);										
184         alias da_purple_value_set_long = void function(PurpleValue* value, c_long data);									
185         alias da_purple_value_set_ulong = void function(PurpleValue* value, c_ulong data);									
186         alias da_purple_value_set_int64 = void function(PurpleValue* value, gint64 data);									
187         alias da_purple_value_set_uint64 = void function(PurpleValue* value, guint64 data);									
188         alias da_purple_value_set_string = void function(PurpleValue* value, const(char)* data);							
189         alias da_purple_value_set_object = void function(PurpleValue* value, void* data);									
190         alias da_purple_value_set_pointer = void function(PurpleValue* value, void* data);									
191         alias da_purple_value_set_enum = void function(PurpleValue* value, int data);										
192         alias da_purple_value_set_boxed = void function(PurpleValue* value, void* data);									
193         alias da_purple_value_get_char = char function(const(PurpleValue)* value);											
194         alias da_purple_value_get_uchar = ubyte function(const(PurpleValue)* value);										
195         alias da_purple_value_get_boolean = gboolean function(const(PurpleValue)* value);									
196         alias da_purple_value_get_short = short function(const(PurpleValue)* value);										
197         alias da_purple_value_get_ushort = ushort function(const(PurpleValue)* value);										
198         alias da_purple_value_get_int = int function(const(PurpleValue)* value);											
199         alias da_purple_value_get_uint = uint function(const(PurpleValue)* value);											
200         alias da_purple_value_get_long = c_long function(const(PurpleValue)* value);										
201         alias da_purple_value_get_ulong = c_ulong function(const(PurpleValue)* value);										
202         alias da_purple_value_get_int64 = gint64 function(const(PurpleValue)* value);										
203         alias da_purple_value_get_uint64 = guint64 function(const(PurpleValue)* value);										
204         alias da_purple_value_get_string = const(char)* function(const(PurpleValue)* value);								
205         alias da_purple_value_get_object = void* function(const(PurpleValue)* value);										
206         alias da_purple_value_get_pointer = void* function(const(PurpleValue)* value);										
207         alias da_purple_value_get_enum = int function(const(PurpleValue)* value);											
208         alias da_purple_value_get_boxed = void* function(const(PurpleValue)* value);
209     }
210 
211     __gshared
212     {
213 	    da_purple_value_new purple_value_new;
214 	    da_purple_value_new_outgoing purple_value_new_outgoing;
215 	    da_purple_value_destroy purple_value_destroy;
216 	    da_purple_value_dup purple_value_dup;
217 	    da_purple_value_get_type purple_value_get_type;
218 	    da_purple_value_get_subtype purple_value_get_subtype;
219 	    da_purple_value_get_specific_type purple_value_get_specific_type;
220 	    da_purple_value_is_outgoing purple_value_is_outgoing;
221 	    da_purple_value_set_char purple_value_set_char;
222 	    da_purple_value_set_uchar purple_value_set_uchar;
223 	    da_purple_value_set_boolean purple_value_set_boolean;
224 	    da_purple_value_set_short purple_value_set_short;
225 	    da_purple_value_set_ushort purple_value_set_ushort;
226 	    da_purple_value_set_int purple_value_set_int;
227 	    da_purple_value_set_uint purple_value_set_uint;
228 	    da_purple_value_set_long purple_value_set_long;
229 	    da_purple_value_set_ulong purple_value_set_ulong;
230 	    da_purple_value_set_int64 purple_value_set_int64;
231 	    da_purple_value_set_uint64 purple_value_set_uint64;
232 	    da_purple_value_set_string purple_value_set_string;
233 	    da_purple_value_set_object purple_value_set_object;
234 	    da_purple_value_set_pointer purple_value_set_pointer;
235 	    da_purple_value_set_enum purple_value_set_enum;
236 	    da_purple_value_set_boxed purple_value_set_boxed;
237 	    da_purple_value_get_char purple_value_get_char;
238 	    da_purple_value_get_uchar purple_value_get_uchar;
239 	    da_purple_value_get_boolean purple_value_get_boolean;
240 	    da_purple_value_get_short purple_value_get_short;
241 	    da_purple_value_get_ushort purple_value_get_ushort;
242 	    da_purple_value_get_int purple_value_get_int;
243 	    da_purple_value_get_uint purple_value_get_uint;
244 	    da_purple_value_get_long purple_value_get_long;
245 	    da_purple_value_get_ulong purple_value_get_ulong;
246 	    da_purple_value_get_int64 purple_value_get_int64;
247 	    da_purple_value_get_uint64 purple_value_get_uint64;
248 	    da_purple_value_get_string purple_value_get_string;
249 	    da_purple_value_get_object purple_value_get_object;
250 	    da_purple_value_get_pointer purple_value_get_pointer;
251 	    da_purple_value_get_enum purple_value_get_enum;
252 	    da_purple_value_get_boxed purple_value_get_boxed;
253     }
254 }